import request from '@/config/axios'

// 项目模板 VO
export interface ModelVO {
  id: number // id
  number: string // 项目编号
  name: string // 项目名称
  scheduledStartTime: Date // 计划开始时间
  scheduledEndTime: Date // 计划结束时间
  actualStartTime: Date // 实际开始时间
  actualEndTime: Date // 实际结束时间
  planDuration: number // 计划工期
  actualDuration: number // 实际工期
  progress: number // 进度
  calendar: number // 日历
  projectManager: number // 项目经理
  projectTarget: string // 项目目标
  timeoutReason: string // 超时原因
  status: number // 状态
  phase: number // 生命周期阶段
  note: string // 备注
}

// 项目模板 API
export const ModelApi = {

  // 查询项目模板列表
  getModelList: async (params) => {
    return await request.get({ url: `/project/model/list`, params })
  },

  // 查询项目模板分页
  getModelPage: async (params: any) => {
    return await request.get({ url: `/project/model/page`, params })
  },

  // 查询项目模板详情
  getModel: async (id: number) => {
    return await request.get({ url: `/project/model/get?id=` + id })
  },

  // 新增项目模板
  createModel: async (data: ModelVO) => {
    return await request.post({ url: `/project/model/create`, data })
  },

  // 修改项目模板
  updateModel: async (data: ModelVO) => {
    return await request.put({ url: `/project/model/update`, data })
  },

  // 删除项目模板
  deleteModel: async (id: number) => {
    return await request.delete({ url: `/project/model/delete?id=` + id })
  },

  // 导出项目模板 Excel
  exportModel: async (params) => {
    return await request.download({ url: `/project/model/export-excel`, params })
  },

// ==================== 子表（项目输入文件） ====================

  // 获得项目输入文件列表
  getModelInputListByModelId: async (modelId) => {
    return await request.get({ url: `/project/model/model-input/list-by-model-id?modelId=` + modelId })
  },

// ==================== 子表（项目输出文件） ====================

  // 获得项目输出文件列表
  getModelOutputListByModelId: async (modelId) => {
    return await request.get({ url: `/project/model/model-output/list-by-model-id?modelId=` + modelId })
  },
}
